package com.java.interview.thread;



/**
 * Created by lyc on 2016-03-25.
 */
 //yield和sleep的区别?
 //1.sleep让给别人机会以后，自己处于阻塞状态，而yield处于就绪状态
 //2.sleep方法使用时要抛出异常，而yield什么都不做。
 //3.sleep会不考虑优先级的给其他线程机会，而yield是考虑同等优先级地给予其他线程机会！
 //4.sleep的可移植性比yield好，不能靠yield来提高程序的并发性能，它的唯一用途是在测试期间
       // 人为地提高程序的并发性能，以帮助发现一些隐藏的错误。
public class InterviewYield {
   public  static  void main(String[] args) throws InterruptedException {
        Thread t = new Thread() {
            public void run() {
                System.out.println("Hello from new thread");
            }
        };
        t.start();
        Thread.yield();//    Thread.sleep(1);

        System.out.println("Hello from main thread");
        t.join();
       //输出结果：
       // Hello from new thread
       // Hello from main thread
       //也可能是
       //Hello from main thread
       //Hello from new thread
    }
}
